Java দিয়ে UDF তৈরি করা এবং Deploy করা

Database Tutorials - অ্যাপাচি প্রেস্টো (Apache Presto) Presto UDF (User Defined Functions) তৈরি করা |
175
175

Presto তে User Defined Functions (UDFs) ব্যবহার করা হয় যখন আপনি নিজস্ব ফাংশন তৈরি করতে চান যা SQL কোয়েরি এক্সিকিউশনের সময় নির্দিষ্ট কাজ সম্পাদন করবে। Presto তে UDF তৈরি করতে Java ব্যবহার করা হয় এবং তারপর ফাংশনটি Presto সার্ভারে ডিপ্লয় করা হয়।

এখানে, আমরা দেখবো Java দিয়ে UDF তৈরি এবং Presto তে UDF Deploy করার পুরো প্রক্রিয়া।


১. Java দিয়ে UDF তৈরি করা

Presto তে UDF তৈরি করতে হলে প্রথমে Java প্রোগ্রামিং ব্যবহার করে একটি ফাংশন লিখতে হবে যা SQL কোয়েরি এক্সিকিউট করার সময় নির্দিষ্ট কাজ করবে।

ধাপ ১: Java Class তৈরি করা

Presto UDF তৈরি করতে প্রথমে একটি Java Class তৈরি করতে হবে। এই ক্লাসটি Presto এর ফাংশন ইন্টারফেসের সাথে সামঞ্জস্যপূর্ণ হতে হবে। উদাহরণস্বরূপ, নিচে একটি সিম্পল Add নামক UDF ফাংশন তৈরি করা হলো যা দুটি সংখ্যার যোগফল বের করবে।

package com.example.presto.udf;

import io.prestosql.spi.block.Block;
import io.prestosql.spi.type.BigintType;
import io.prestosql.spi.type.StandardTypes;
import io.prestosql.spi.function.Description;
import io.prestosql.spi.function.SqlFunction;
import io.prestosql.spi.function.SqlType;

@Description("Returns the sum of two integers")
public final class AddFunction
{
    private AddFunction() {}

    @SqlFunction("add") // UDF এর নাম হবে 'add'
    @SqlType(StandardTypes.BIGINT) // আউটপুট টাইপ হবে BIGINT
    public static long add(@SqlType(StandardTypes.BIGINT) long left, 
                           @SqlType(StandardTypes.BIGINT) long right)
    {
        return left + right;
    }
}

ধাপ ২: Maven প্রজেক্ট সেটআপ করা

Presto তে UDF ডিপ্লয় করার জন্য Java Maven প্রজেক্ট সেটআপ করতে হবে। একটি pom.xml ফাইল তৈরি করে ডিপেনডেন্সি যোগ করতে হবে। এখানে একটি সাধারণ Maven pom.xml ফাইল দেওয়া হলো:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>presto-udf</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- Presto SPI Dependency -->
        <dependency>
            <groupId>io.prestosql</groupId>
            <artifactId>presto-spi</artifactId>
            <version>350</version>
        </dependency>

        <!-- Maven Compiler Plugin -->
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
        </plugins>
    </build>
</project>

এখানে, presto-spi ডিপেনডেন্সি ব্যবহার করা হয়েছে যা Presto এর UDF তৈরি করার জন্য প্রয়োজনীয় ফাংশনালিটিগুলি অন্তর্ভুক্ত করে।

ধাপ ৩: Java কোড কম্পাইল এবং JAR ফাইল তৈরি করা

Maven ব্যবহার করে আপনার Java কোড কম্পাইল করুন এবং JAR ফাইল তৈরি করুন:

mvn clean install

এটি একটি JAR ফাইল তৈরি করবে যা আপনার UDF ফাংশন ধারণ করবে।


২. UDF Presto তে Deploy করা

Presto তে UDF ডিপ্লয় করার জন্য, আপনার তৈরি JAR ফাইলটি Presto সার্ভারের plugin ফোল্ডারে রাখতে হবে। তারপর Presto সার্ভারের catalog ফোল্ডারে একটি কনফিগারেশন ফাইল তৈরি করতে হবে।

ধাপ ১: JAR ফাইল Presto Plugin ফোল্ডারে স্থানান্তর করা

Presto সার্ভারের plugin ডিরেক্টরিতে আপনার JAR ফাইলটি স্থানান্তর করুন। উদাহরণস্বরূপ:

cp target/presto-udf-1.0-SNAPSHOT.jar /opt/presto/plugin/presto-udf/

ধাপ ২: Presto Catalog কনফিগারেশন ফাইল তৈরি করা

Presto-তে UDF যোগ করার জন্য, etc/catalog ফোল্ডারে একটি নতুন catalog file তৈরি করতে হবে। উদাহরণস্বরূপ, presto-udf.properties নামে একটি ফাইল তৈরি করুন।

connector.name=presto-udf
plugin.dir=/opt/presto/plugin/presto-udf

ধাপ ৩: Presto সার্ভার রিস্টার্ট করা

JAR ফাইলটি যোগ করার এবং কনফিগারেশন ফাইল তৈরি করার পর, Presto সার্ভার রিস্টার্ট করুন:

/opt/presto/bin/launcher restart

ধাপ ৪: Presto CLI তে UDF ব্যবহার করা

এখন আপনি Presto CLI বা Web UI ব্যবহার করে আপনার নতুন UDF ফাংশনটি পরীক্ষা করতে পারেন।

java -jar presto-cli-350-executable.jar --server <presto-server-ip>:8080 --catalog <catalog-name> --schema <schema-name>

এখন আপনি add ফাংশনটি ব্যবহার করে দুটি মানের যোগফল বের করতে পারবেন:

SELECT add(5, 10);

এটি 15 ফিরিয়ে দিবে, কারণ এটি ৫ এবং ১০ এর যোগফল।


৩. UDF Performance Optimization

Presto তে UDF ব্যবহারের সময় কিছু পারফরম্যান্স বিষয়ক বিবেচনা রাখতে হবে:

  1. Efficient Algorithm: UDF-এ ব্যবহৃত এলগোরিদমগুলো যতটা সম্ভব কার্যকর এবং দ্রুত হতে হবে।
  2. Avoid Complex Logic: UDF তে জটিল লজিক ব্যবহারের থেকে বিরত থাকা উচিত, কারণ এটি কোয়েরি এক্সিকিউশনের সময় ব্যয় বাড়াতে পারে।
  3. Caching: আপনি যদি অনেকগুলি ডেটা প্রক্রিয়া করছেন, তাহলে সেগুলির জন্য কেসিং প্রযুক্তি ব্যবহার করতে পারেন।

সারাংশ

Presto তে User Defined Functions (UDFs) তৈরি এবং ডিপ্লয় করা একটি শক্তিশালী উপায়, যার মাধ্যমে আপনি SQL কোয়েরির জন্য কাস্টম ফাংশন তৈরি করতে পারেন। Java ব্যবহার করে UDF তৈরি করার পর, সেটি Presto Plugin ফোল্ডারে ডিপ্লয় করতে হবে। পরে এটি Presto সার্ভারের সাথে সংযুক্ত হয়ে SQL কোয়েরি এক্সিকিউশনের সময় কাজ করবে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion
;